<!DOCTYPE html>
<html lang="">

<head>
	<meta charset="utf-8" />
	<meta http-equiv="X-UA-Compatible" content="IE=edge" />
	<meta content="yes" name="apple-mobile-web-app-capable" />
	<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
	<link rel="icon" href="<%= BASE_URL %>favicon.ico" />
	<title>app</title>
</head>
<script type="text/javascript" charset="utf-8">
	function getStatusbarHeight(params) {
		console.log('height', plus.navigator.getStatusbarHeight());
		localStorage.setItem('statusbarHeight', plus.navigator.getStatusbarHeight())
	}

	if (window.plus) {
		getStatusbarHeight()
	} else {
		document.addEventListener('plusready', getStatusbarHeight, false)
	}
</script>

<body>
	<noscript>
		<strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly
				without JavaScript enabled. Please enable it to continue.</strong>
	</noscript>
	<div id="app"></div>
	<!-- built files will be auto injected -->
	<script type="text/javascript" charset="utf-8">
		//取消浏览器的所有事件，使得active的样式在手机上正常生效
		document.addEventListener(
			'touchstart',
			function () {
				return false
			},
			true
		)
		// 禁止选择-放出后会影响手机自带的长按复制粘贴功能
		// document.oncontextmenu = function () {
		// 	return false
		// }

		function getVideoAuth() {
			// 获取用户授权函数
			var _this = this
			plus.android.requestPermissions(
				['android.permission.CAMERA'],
				function (e) {
					if (e.deniedAlways.length > 0) {
						//权限被永久拒绝，永久拒绝后，便不可以再次调用。
						// 弹出提示框解释为何需要手机相机权限，引导用户打开设置页面开启
						console.log('Always Denied!!! ' + e.deniedAlways.toString())
					}
					if (e.deniedPresent.length > 0) {
						//权限被临时拒绝
						// 弹出提示框解释为何需要手机相机权限，可再次调用plus.android.requestPermissions申请权限
						plus.android.requestPermissions(['android.permission.CAMERA'])
						console.log('Present Denied!!! ' + e.deniedPresent.toString())
					}
					if (e.granted.length > 0) {
						//权限被允许
						//调用依赖获取手机相机权限的代码
						console.log('Granted!!! ' + e.granted.toString())
					}
				},
				function (e) {
					console.log('Request Permissions error:' + JSON.stringify(e))
				}
			)
		}

		function backEvent() {
			// 等待plus ready后再调用5+ API：
			let first = null
			const webview = plus.webview.currentWebview()
			plus.key.addEventListener('backbutton', () => {
				webview.canBack((e) => {
					if (e.canBack) {
						webview.back()
					} else {
						//首次按键，提示‘再按一次退出应用’
						if (!first) {
							//获取第一次点击的时间戳
							first = new Date().getTime()
							//通过H5+ API 调用Android 上的toast 提示框
							plus.nativeUI.toast('再按一次退出应用', {
								duration: 'short'
							})
							setTimeout(() => {
								first = null
							}, 1000)
						} else {
							if (new Date().getTime() - first < 1000) {
								//获取第二次点击的时间戳, 两次之差 小于 1000ms 说明1s点击了两次,
								plus.runtime.quit() //退出应用
								// webview.close(); //hide,quit
							}
						}
					}
				})
			})
		}

		function getPositionAuth() {
			if (navigator.geolocation) {
				navigator.geolocation.getCurrentPosition(
					function (position) {
						// "经度" + position.coords.longitude;
						// "纬度" + position.coords.latitude;
						// "准确度" + position.coords.accuracy;
						// "海拔" + position.coords.altitude;
						// "海拔准确度" + position.coords.altitudeAcuracy;
						// "行进方向" + position.coords.heading;
						// "地面速度" + position.coords.speed;
						// "请求的时间" + new Date(position.timestamp);
					}, function (err) {
						// alert(err.code);
						// code：返回获取位置的状态
						// 0  :  不包括其他错误编号中的错误
						// 1  :  用户拒绝浏览器获取位置信息
						// 2  :  尝试获取用户信息，但失败了
						// 3  :  设置了timeout值，获取位置超时了
					}, {
					enableHighAcuracy: true, //位置是否精确获取
					timeout: 5000,            //获取位置允许的最长时间
					maximumAge: 1000          //多久更新获取一次位置
				})
					;
			} else {
				plus.nativeUI.toast('不支持地理定位。', {
					duration: 'short'
				})
			}
		}
		// H5 plus事件处理
		function plusReady() {
			// Android获取设备播放视频权限
			getVideoAuth()
			// Android处理返回键
			backEvent()
			// Android获取设备定位权限
			getPositionAuth()
		}

		if (window.plus) {
			plusReady()
		} else {
			document.addEventListener('plusready', plusReady, false)
		}
	</script>
</body>

</html>